var OnlineStoreCookiesConsentModule = { initialize: function () { var module = this; $(document).on('click', '.cookies-consent-modal .accept-cookies', function (event) { module.accept_cookies(event); }); if (typeof localStorage !== 'undefined' && this.get_consent() == null) { this.show(); } else { this.load_dynamic_cookies(); } }, show: function () { $('.cookies-consent-modal').modal('show'); }, hide: function () { $('.cookies-consent-modal').modal('hide'); }, accept_cookies: function (event) { var element = $(event.currentTarget); var cookies = element.attr('cookies'); var cookies_inputs = $('.cookies-consent-modal .cookie-check'); switch (cookies) { case 'only_required': $.each(cookies_inputs, function () { var cookie_id = $(this).attr('id'); if (cookie_id != 'cookies_required') { $(this).prop('checked', false); } }); break; case 'only_selected': break; case 'all': $.each(cookies_inputs, function () { $(this).prop('checked', true); }); break; } var data = {}; $.each(cookies_inputs, function () { var cookie_id = $(this).attr('id'); data[cookie_id] = $(this).prop('checked'); }); this.set_consent(data); this.hide(); this.load_dynamic_cookies(); }, get_consent: function () { var consent = CookiesModule.read(this.get_consent_store_key()); if (consent != null) { consent = JSON.parse(consent); } return consent; }, set_consent: function (data) { CookiesModule.write(this.get_consent_store_key(), JSON.stringify(data), 60); }, get_consent_store_key: function () { return 'cookies_consent'; }, load_dynamic_cookies: function () { var cookies_consent = this.get_consent(); if (cookies_consent == null) { return; } if (typeof cookies_consent['cookies_analytics'] !== 'undefined' && cookies_consent['cookies_analytics'] === true) { this.load_google_analytics(); } }, load_google_analytics: function () { var gtag_id = null; var gtag_id_meta = $('meta[property=gtag_id]'); if (gtag_id_meta.length > 0) { gtag_id = gtag_id_meta.attr('content'); } if (gtag_id == null) { return; } var head = document.getElementsByTagName("head")[0]; var gtag_script = document.createElement('script'); gtag_script.setAttribute('src', 'https://www.googletagmanager.com/gtag/js?id=' + gtag_id); gtag_script.onload = function () { window.dataLayer = window.dataLayer || []; function gtag() { dataLayer.push(arguments); } gtag('js', new Date()); gtag('config', gtag_id); }; head.insertBefore(gtag_script, head.children[1]); } }; $(function () { OnlineStoreCookiesConsentModule.initialize(); });